In modern communication systems, video data can be transmitted through the internet between terminal devices or “terminals.” For example, in real-time video communications, a sender of the video data can be an end-user terminal (e.g., a mobile device or a personal computer). For an on-demand video streaming service, the sender of the video data can be a server in a cloud. A receiver of the video data is usually another end-user terminal.
The video data is usually encoded, compressed, and packetized as a set of data packets for transmission over a network. Due to jitters in the network, the data packets can be lost during transmission, or corrupted or damaged when arriving at the receiver. In such cases, the receiver cannot correctly decode the video data, causing video artifacts or communications interruptions. For a video encoded by a coding standard such as MPEG-2, H.264, or H.265, a slice containing a lost packet or corrupted bits can only be decoded partially. When the partially decoded picture is a reference picture for decoding the following pictures, the artifacts would be propagated and accumulated.
Error concealment techniques can be used to restore the lost or damaged video data. However, if the loss and damage is severe or other data strongly depend on the lost or damaged data, the effect of the error concealment can be challenged in a very jittering network.